Outdated CHICKEN release

This is a manual page for an old and unsupported version of CHICKEN. If you are still using it, please consider migrating to the latest version. You can find the manual for the latest release here.

  1. Outdated CHICKEN release
  2. Unit files
    1. Pathname operations
      1. absolute-pathname?
      2. decompose-pathname
      3. make-pathname
      4. make-absolute-pathname
      5. pathname-directory
      6. pathname-file
      7. pathname-extension
      8. pathname-replace-directory
      9. pathname-replace-file
      10. pathname-replace-extension
      11. pathname-strip-directory
      12. pathname-strip-extension
      13. directory-null?
    2. Temporary files
      1. create-temporary-file
    3. Deleting a file without signalling an error
      1. delete-file*
    4. File move/copy
      1. file-copy
      2. file-move

Unit files

This unit contains file- and pathname-oriented procedures. It uses the regex unit.

Pathname operations

absolute-pathname?

[procedure] (absolute-pathname? PATHNAME)

Returns #t if the string PATHNAME names an absolute pathname, and returns #f otherwise.

decompose-pathname

[procedure] (decompose-pathname PATHNAME)

Returns three values: the directory-, filename- and extension-components of the file named by the string PATHNAME. For any component that is not contained in PATHNAME, #f is returned.

make-pathname

make-absolute-pathname

[procedure] (make-pathname DIRECTORY FILENAME [EXTENSION [SEPARATOR]])
[procedure] (make-absolute-pathname DIRECTORY FILENAME [EXTENSION [SEPARATOR]])

Returns a string that names the file with the components DIRECTORY, FILENAME and (optionally) EXTENSION with SEPARATOR being the directory separation indicator (usually / on UNIX systems and \ on Windows, defaulting to whatever platform this is running on). DIRECTORY can be #f (meaning no directory component), a string or a list of strings. FILENAME and EXTENSION should be strings or #f. make-absolute-pathname returns always an absolute pathname.

pathname-directory

[procedure] (pathname-directory PATHNAME)

pathname-file

[procedure] (pathname-file PATHNAME)

pathname-extension

[procedure] (pathname-extension PATHNAME)

Accessors for the components of PATHNAME. If the pathname does not contain the accessed component, then #f is returned.

pathname-replace-directory

[procedure] (pathname-replace-directory PATHNAME DIRECTORY)

pathname-replace-file

[procedure] (pathname-replace-file PATHNAME FILENAME)

pathname-replace-extension

[procedure] (pathname-replace-extension PATHNAME EXTENSION)

Return a new pathname with the specified component of PATHNAME replaced by a new value.

pathname-strip-directory

[procedure] (pathname-strip-directory PATHNAME)

pathname-strip-extension

[procedure] (pathname-strip-extension PATHNAME)

Return a new pathname with the specified component of PATHNAME stripped.

directory-null?

[procedure] (directory-null? DIRECTORY)

Does the DIRECTORY consist only of path separators and the period?

DIRECTORY may be a string or a list of strings.

Temporary files

create-temporary-file

[procedure] (create-temporary-file [EXTENSION])

Creates an empty temporary file and returns its pathname. If EXTENSION is not given, then .tmp is used. If the environment variable TMPDIR, TEMP or TMP is set, then the pathname names a file in that directory.

Deleting a file without signalling an error

delete-file*

[procedure] (delete-file* FILENAME)

If the file FILENAME exists, it is deleted and #t is returned. If the file does not exist, nothing happens and #f is returned.

File move/copy

file-copy

[procedure] (file-copy ORIGFILE NEWFILE #!optional CLOBBER BLOCKSIZE)

Copies ORIGFILE (a string denoting some filename) to NEWFILE, BLOCKSIZE bytes at a time. BLOCKSIZE defaults to 1024, and must be a positive integer. Returns the number of bytes copied on success, or errors on failure. CLOBBER determines the behaviour of file-copy when NEWFILE is already extant. When set to #f (default), an error is signalled. When set to any other value, NEWFILE is overwritten. file-copy will work across filesystems and devices and is not platform-dependent.

file-move

[procedure] (file-move ORIGFILE NEWFILE #!optional CLOBBER BLOCKSIZE)

Moves ORIGFILE (a string denoting some filename) to NEWFILE, with the same semantics as file-copy, above. file-move is safe across filesystems and devices (unlike file-rename). It is possible for an error to be signalled despite partial success if NEWFILE could be created and fully written but removing ORIGFILE fails.

Previous: Unit ports

Next: Unit extras